import jsrsasign from 'jsrsasign'


// 私钥加签
export function signature(signData,priK) {
  // console.log("jsutil:"+jsrsasignUtil.readFileHexByBin("./pri.key"));
  // 创建秘钥实例
  var key = jsrsasign.KEYUTIL.getKey(priK);
  // 指定签名算法 sha1对原文哈希
  let signature = new jsrsasign.KJUR.crypto.Signature({ alg: "SHA256withRSA" });   //SHA1withRSA  SHA256withRSA
  // 传入秘钥实例, 初始化
  signature.init(key);
  // 传入待签明文
  signature.updateString(signData);
  // 签名, 得到16进制字符结果
  let signResult = signature.sign();
  // 签名hex转base64
  let signBase64 = jsrsasign.hextob64(signResult);
  // console.log(signBase64);
  return signBase64;
}


// 验签 
export function verify(signData, data ,pubk ) { 
  // signData: 加签之后得到的签文
  // data: 加签的数据 
  try {
      // 验签
      let signatureVf = new jsrsasign.KJUR.crypto.Signature({ alg: "SHA256withRSA", prvkeypem: pubk });
      signatureVf.updateString(data);
      let result = signatureVf.verify(jsrsasign.b64tohex(signData));
      // console.log("jsrsasign verify: " + result);
      return result;
  } catch (e) {
      console.error(e);
  }
}
